Q: When a picture that contains a pixMap is spooled into a window,
how and when is the depth of the pixMap in the picture converted to the depth of the screens
the window is on?
A: When a picture is spooled in, if QuickDraw encounters any bitmap
opcode , it allocates a pixMap of the same depth as the data associated with the bitmap
opcode , expands the data into the temporary pixMap , and then calls StdBits .
StdBits is what triggers the depth and color conversions as demanded by the
color environment (depth, color table, B & W settings) of the devices the
target port may span (as when a window crosses two or more screens).
If there's not enough memory in the application heap or in the temporary memory
pool, QuickDraw bands the image down to one scan line and calls StdBits for
each of these bands. Note that if you're providing your own bitsProc , QuickDraw
will call it instead of StdBits .
This process is the same when the picture is in memory, with the obvious
exception that all the picture data is present; the color mapping occurs when
StdBits does its stuff.
|